package com.tbit.main.h2.pojo;

import com.tbit.main.pojo.ParkPointDeviceCount;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 停车点
 *
 * @author Leon
 * 2019年11月9日 下午1:44:15
 */
@Data
public class ParkPoint implements Serializable {

    private static final long serialVersionUID = 8578600440854359635L;
    /**
     * 停车点id
     */
    private Integer parkPointId;
    /**
     * 代理商id
     */
    private Integer accountId;
    /**
     * 停车点名称
     */
    private String name;
    /**
     * 原始经度
     */
    private Double lo;
    /**
     * 原始纬度
     */
    private Double la;
    /**
     * 校准后经度
     */
    private Double loC;
    /**
     * 校准后纬度
     */
    private Double laC;
    /**
     * 误差范围
     */
    private Integer allowRange;
    /**
     * 经纬度集合(多边形还车点)
     */
    private String points;
    /**
     * 多边行还车点(高德地图)
     */
    private String pointsC;
    /**
     * 类型 0 圆形 1 多边形
     */
    private Integer parkPointType;
    /**
     * 备注
     */
    private String remark;
    /**
     * 距离
     */
    private Integer distance;
    /**
     * 投放车辆数量
     */
    private Integer machineCount;
    /**
     * 分区id
     */
    private Integer regionId;
    /**
     * 道钉数量
     */
    private Integer bleBeaconTotal;
    /**
     * rfid数量
     */
    private Integer rfidTotal;
    /**
     * 站点设备
     */
    private List<ParkPointDeviceCount> parkPointDeviceCount;

    /**
     * 距离
     */
    private Double distanceTest;
    /**
     * 站点容量
     */
    private Integer capacity;

    /**
     * 是否在站点内
     */
    private Integer inside;
    /**
     * 站点类型  0 普通站点 1 高精度站点
     */
    private Integer siteType;

    /**
     * 高精度误差范围
     */
    private Integer highPrecisionAllowRange;
    /**
     * 站点等级 1:热门一级 2:热门二级 3:普通站点 4:冷门二级 5:冷门一级
     */
    private Integer level;

    public int compareTo(ParkPoint parkPoint) {
        if (this.distance > parkPoint.getDistance()) {
            return (this.distance - parkPoint.getDistance());
        }
        if (this.distance < parkPoint.getDistance()) {
            return (this.distance - parkPoint.getDistance());
        }

        return 0;
    }

}
